/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tesoreria.beans;

import org.cip.esymons.general.util.ControladorAbstracto;
import cip.util.PaginacionFiltro;
import java.util.ArrayList;
import java.util.List;
import org.cip.esymons.tesoreria.bc.FormaPagoDelegate;
import org.cip.esymons.tesoreria.be.FormaPago;

/**
 *
 * @author Ingrid Capunay
 */
public class FormaPagoController extends ControladorAbstracto {
    
    private FormaPagoDelegate delegado;
    private MiPaginador paginador;
    private FormaPago formaPago;

    public FormaPagoController() {
        delegado = new FormaPagoDelegate();
        paginador = new MiPaginador<FormaPago>(null, 20);
        paginador.setFilter("");
        formaPago = new FormaPago();
    }

    public FormaPago buscarPorCodigo(Integer codigo) {
        return delegado.find(codigo);
    }

    /**
     * @return the cuentaContable
     */
    public FormaPago getFormaPago() {
        return formaPago;
    }

    /**
     * @param cuentaContable the cuentaContable to set
     */
    public void setFormaPago(FormaPago formaPago) {
        this.formaPago = formaPago;
    }

    public final class MiPaginador<k> extends PaginacionFiltro {

        private String desc;

        public MiPaginador(String action, int cantidad) {
            super(action, cantidad);
        }

        @Override
        public int contar() throws Exception {
            try {
                return delegado.contarPaginadorFormaPago(desc);
            } catch (Exception e) {
                return 0;
            }
        }

        @Override
        public List listar() throws Exception {
            try {
                return delegado.paginadorFormaPago(getPaginador().getCantidadxPagina(), getPaginador().getPosicion(), desc);
            } catch (Exception e) {
                return new ArrayList();
            }
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String valor) {
            try {
                if (!valor.equals(desc)) {
                    desc = valor;
                    reset();
                }
            } catch (Exception ex) {
                desc = null;
            }
        }
    }

    /**
     * @return the paginador
     */
    public MiPaginador getPaginador() {
        return paginador;
    }

    /**
     * @param paginador the paginador to set
     */
    public void setPaginador(MiPaginador paginador) {
        this.paginador = paginador;
    }

    public String nuevo() {
        formaPago = new FormaPago();
        return "nuevo";
    }

    public String grabar() {
        delegado.create(formaPago);
        paginador.reset();
        ControladorAbstracto.info("Se generó con exito la forma de pago");
        return "buscar";
    }

    public String buscar() {
        paginador.reset();
        return null;
    }

    public String actualizar() {
        delegado.edit(formaPago);
        paginador.reset();
        ControladorAbstracto.info("Se actualizó satisfactoriamente la Forma de Pago.");
        return "buscar";
    }

    public String eliminar() {
        delegado.remove(formaPago);
        paginador.reset();
        return null;
    }
   
}
